<?php

?>
<style>
    .cacheTimer {
        font-size: 12px;
        color: #999;
    }
</style>

<div class="well span7">
    <form class="form-inline" action="#" method="POST" name="cacheForm" id="cacheForm">
        <fieldset>
            <legend>Пересчёт кэша</legend>
            <div class="control-group">
                <button class="btn btn-primary" id="cacheD" data-action="<?php echo ACTIONS::CACHE_D; ?>"><i class=" icon-refresh icon-white"></i></button> 
                <span class="help-inline">Пересчитать кэш за дни текущего месяца</span>
            </div>
            <div class="control-group">
                <button class="btn btn-primary" id="cacheM" data-action="<?php echo ACTIONS::CACHE_M; ?>"><i class=" icon-refresh icon-white"></i></button> 
                <span class="help-inline">Пересчитать кэш за месяцы текущего года</span>
            </div>
            <div class="control-group">
                <button class="btn btn-primary" id="cacheY" data-action="<?php echo ACTIONS::CACHE_Y; ?>"><i class="icon-refresh icon-white"></i></button> 
                <span class="help-inline">Пересчитать кэш за предыдущие годы</span>
            </div>
            
        </fieldset>
    </form>
</div>


<div class="well span7">
    <h4>Результат выполнения:</h4>
    <div id="cacheResult"></div>
</div>

<img src="img/loader.gif" width="26" height="26" id="cacheProcess" style="display:none;">

<script>
    
    function cacheFormDisable() {
        Elm.cacheForm.find('input, button, select').attr('disabled','disabled');
    }
    
    
    function cacheFormEnable() {
        Elm.cacheForm.find('input, button, select').removeAttr('disabled');
    }
    
    function cacheProcessEnd() {
        cacheFormEnable();
        Elm.cacheProcess.hide();
        Elm.cacheButtons.addClass('btn-primary').removeClass('btn-info');
        Elm.cacheResult.html('');
        Elm.cacheTimer.html('').hide();
    }
    
    
    function cacheTimerUpdate(ctime) {
        Elm.cacheTimer.html('&nbsp; '+ctime.h+':'+ctime.m+':'+ctime.s);
    }
    
    
    
    $(function(){
        Elm.cacheForm = $('#cacheForm');
        Elm.cacheButtons = Elm.cacheForm.find('button.btn');
        Elm.cacheResult = $('#cacheResult');
        Elm.cacheProcess = $('#cacheProcess');
        Elm.cacheTimer = $('<span class="cacheTimer help-inline">');
        
        Elm.cacheTimer.Func = new StopWatch();
        
        Elm.cacheButtons.click(function() {
            var btn = $(this);
            var cgroup = btn.parent();
            cacheFormDisable();
            btn.addClass('btn-info').removeClass('btn-primary');
            cgroup.append(Elm.cacheProcess.show()).append(Elm.cacheTimer.show());
            Elm.cacheTimer.Func.Start(cacheTimerUpdate);
            Elm.cacheResult.html('Подождите');
            
            
            var action = btn.attr('data-action');
            jsonRequest(
                'cache.php',
                {action:action},
                function(data) {
                    if(!checkSession(data)) {
                        Elm.loginFormModal.dialog('open');
                        Elm.loginFormModal.successCallback = function(){ btn.click(); };
                        cacheProcessEnd();
                        return;
                    }

                    if (!data.state) {
                        uiAlert(data.message,'Error');
                        cacheProcessEnd();
                        return;
                    }

                    var resp = arrayGetValue(data, 'response_data', false);
                    var result = arrayGetValue(resp, 'result', false);

                    cacheProcessEnd();
                    
                    if (result) {
                        Elm.cacheResult.html(result);
                    }
                    else Elm.cacheResult.html('Сервер вернул пустую строку. Результат выполнения операции можно увидеть в файле cron.log');
                },

                function() {
                    uiAlert('Ошибка соединения','Error');
                    cacheProcessEnd();
                }
            );
            
            
            return false;
        });
    });
</script>

